 
#pragma once

#include <string>

void initLogger(const char* fn);
void closeLogger();

const std::string getLogTag(const std::string&, int);
void dhlog(const std::string& tag, const char *fmt, ...);

#define DHLOG_TAG getLogTag(std::string(__FILE__), __LINE__)

#ifndef DHLOG
#define DHLOG
#endif

#ifdef DHLOG
#define _DHLOG(fmt, ...)     dhlog(DHLOG_TAG, fmt, ## __VA_ARGS__)
#define _MEM(msg)               TDGlobal::mem(msg)
#define TIME_CALC_START(msg)         _DHLOG("%s",msg); int64_t timeCalcStartTime=SysUtil::currentTimeMillis()
#define TIME_CALC_END(msg)           _DHLOG("%s: %lld", msg, SysUtil::currentTimeMillis()-timeCalcStartTime); \
                                timeCalcStartTime=SysUtil::currentTimeMillis()

#else
#define _DHLOG(fmt, ...)
#define _MEM(msg)
#define TIME_CALC_START(msg)
#define TIME_CALC_END(msg)
#endif

